import $http from './request.js'
export default {
	// 监听网络状态
	onNetWork() {
		let func = (res) => {
			console.log(res.networkType);
			// 如果处于 断网状态
			if (res.networkType === 'none' || res.isConnected === false) {
				uni.showToast({
					title: '当前处于断网状态，请先连接网络',
					icon: 'none',
					duration: 2000,
				});
			} else if (res.networkType !== 'none') {
				uni.showToast({
					title: '网络连接成功',
					icon: 'none',
					duration: 2000,
				});
			}
		}
		// 获取网络类型
		uni.getNetworkType({
			success: func
		});
		// 监听网络状态变化（只有网络发生改变时才触发）
		uni.onNetworkStatusChange(func);
	},
	// 处理 热更新(直接复制的)
	update(showToast = false) {
		// #ifdef APP-PLUS  
		plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {
			// uni.request({
			// 	url: 'https://ceshi.dishait.cn/api/v1/update',
			// 	data: {
			// 		version: widgetInfo.version,
			// 		name: widgetInfo.name
			// 	},
			$http.post('/update',{
				ver:widgetInfo.version, // 当前app版本号
			}).then((res)=>{
				// let [err,result] = await $http.post('/update',{
				// 	ver:widgetInfo.version, // 当前app版本号
				// }) 等于上面这种回调写法 
				let [err,result] = res;
				// 错误处理
				if(!$http.errorCheck(err,result)) return
				// 成功
				var data = result.data.data;
				/*
				   {  接收到到格式
						"msg": "ok",
						"data": {
							"id": 1,
							"url": "http://www.baidu.com",
							"version": "1.0.1",
							"status": 1,
							"create_time": null
						}
					}
				如果没有，url直接终止*/ 
				if(!data.url){
					// 无需更新
					if(showToast){ 
					return uni.showToast({
							title:'已经是最新版本了，无需更新',
							icon:'none'
						})
					}
				}
				// 需要更新
				uni.showModal({
					title:'发现新的版本', // 标题
					content:'最新版本'+data.version, // 内容
					cancelText:'暂不更新', // 取消
					confirmText:'立即更新', //确认
					success:(res)=>{ // 用户点击了确认
						if(res.confirm){
					    // 下载文件，uniapp官方的
						uni.downloadFile({
							url: data.url, //上面声明的成功返回的数据
							success: (downloadResult) => {
								if (downloadResult.statusCode === 200) {
									// 成功回调函数
									plus.runtime.install(downloadResult.tempFilePath, {
										force: false
									}, function() {
										console.log('install success...');
										plus.runtime.restart();
									}, function(e) {
										console.error('install fail...');
									});
								}
							}
						});	
					  }
					}
				})
			});
		});
		// #endif
	},
	// 转化 首页 公共列表数据
	forMatCommonList(v) {
		/* 判断 是否关注 (简化下面代码)
		   let isFollow = false
		   判断用户 关注列表数组是否为空
		   if(v.user.fens.length>0){  非空，就代表关注过此人了
		   	 let isFollow = true
		   } */
		let isFollow = (v.user.fens.length > 0)
		// console.log(isFollow);
		// 判断 顶踩操作
		let support = ''
		// 如果 长度大于0 ，代表用户已经顶或踩了
		if (v.support.length > 0) {
			// 找到 顶踩操作类型，= 0 就是 顶 否则 踩
			support = v.support[0].type === 0 ? 'support' : 'unsupport'
		}
		return {
			id: v.id, // 当前这条数据的id
			user_id: v.user_id, // 用户ID
			username: v.user.username, // 昵称
			userpic: v.user.userpic, // 昵称图片
			newstime: v.create_time, // 发布时间
			title: v.title, // 标题
			titlepic: v.titlepic, // 标题图片
			isFollow: isFollow, // 是否关注
			// 点赞 或 踩 (用户只能顶一次或踩一次)
			support: {
				// 点赞 是 support
				type: support, // 顶
				support_count: v.ding_count,// 点赞
				unsupport_count: v.cai_count// 踩
			},
			comment_count: v.comment_count, // 评论数量
			share_num: v.sharenum, // 分享数量
		};
	},
	// 封装 async 请求 await 捕获 异常错误参数
	test(fn) {
		return new Promise(async (resovle) => {
			try {
				let res = await fn;
				resovle([null, res]);
			} catch (err) {
				resovle([err, null]);
			}
		});
	},
	// 数组去重，置顶
	_toFirst(arr, index) {
		if (index != 0) {
			arr.unshift(arr.splice(index, 1)[0]);
		};
		return arr;
	},
	// userinfo用户信息 格式转换 (直接复制的)
	formatUserinfo(obj) {
		// 第三方登录（已绑定）【存在user，存在 user_id】
		if (obj.user && obj.user_id > 0) {
			return {
				id: obj.user.id,
				username: obj.user.username || obj.nickname,
				userpic: obj.user.userpic || obj.avatarurl,
				phone: obj.user.phone,
				email: obj.user.email,
				status: obj.user.status,
				create_time: obj.user.create_time,
				logintype: obj.logintype,
				password: obj.user.password,
				token: obj.token,
				userinfo: {
					id: obj.user.userinfo.id,
					user_id: obj.user.userinfo.user_id,
					age: obj.user.userinfo.age,
					sex: obj.user.userinfo.sex,
					qg: obj.user.userinfo.qg,
					job: obj.user.userinfo.job,
					path: obj.user.userinfo.path,
					birthday: obj.user.userinfo.birthday,
				}
			}
		}
		// 第三方登录（未绑定）【账号密码或手机号 登录不存在user不存在 user_id】
		return {
			id: obj.user_id,
			username: obj.nickname,
			userpic: obj.avatarurl,
			phone: false,
			email: false,
			status: 1,
			create_time: false,
			logintype: obj.logintype,
			token: obj.token,
			userinfo: false // 未绑定手机号，信息不存在
		}
	},
}